import RPi.GPIO as GPIO
import time

'''
pcf8591 adc
i2c 接口
树莓派本身无法检测到模拟量 只能通过外接adc模块
控制灯的亮暗:
1. pwm:数字信号 占空比控制
2. 模拟信号,直接0-5V,精度0.1V --可以电压随意变化
pi 自带库查找使用demo
reference 
i2c library
spi library
'''
# 当前文件夹中引入 pcf8591.py 库文件
import PCF8591 as ADC
'''
操作杆 用了3个输入通道
合并起来可表示 摇杆在不同状态
'''
def makerobo_setup():
    ADC.setup(0x48) #设置i2c 器件地址 pcf8591
    global status

def directions():
    state=['home','up','down','left','right','pressed']
    i=0
    if ADC.read(0)<=30:
        i=1     #up 方向
    if ADC.read(0) >=225:
        i = 2  # down 方向

    if ADC.read(1) >=225:
        i=4     #left
    if ADC.read(1)<=30:
        i=3     #right

    if ADC.read(2)==0:
        i=5     #pressed
    # if (ADC.read(0)-125<15) and (ADC.read(0)-125>-15) and
    #     (ADC.read(1)-125<15) and (ADC.read(0)-125>-15)
    #     i=0     #home 状态
    return state[i]

def loop():
    curstatus=''
    while True:
        tmp=directions()
        # 状态发生改变 再去打印
        if tmp!=None and tmp!=curstatus:
            curstatus=tmp
            print(curstatus)

def destroy(): #释放资源
    pass

if __name__=='__main__':
    try:
        loop()
    except KeyboardInterrupt:   #按下 ctrl+c 释放资源
        destroy()